package com.cmc.cloud.cmclink.doc.vo.multimodaltransport.containermanifest;

import java.util.List;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;

import org.hibernate.validator.constraints.Length;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 集装箱清单导入 Request VO
 *
 * @author codegen
 */
@Schema(description = "管理后台 - 集装箱清单导入 Request VO")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Valid
public class ContainerManifestImportAllReqVO {
    @Schema(description = "导入的数据信息")
    @NotEmpty(message = "{ContainerManifestImportAllReqVO.containerImportReqVoList.notEmpty}")
    @Valid
    private List<ContainerManifestImportReqVO> containerImportReqVoList;

    @Schema(description = "装货港")
    @NotBlank(message = "{ContainerManifestImportAllReqVO.polCode.notBlank}")
    @Length(max = 5, message = "{ContainerManifestImportAllReqVO.polCode.length}")
    private String polCode;

    @Schema(description = "卸货港")
    @NotBlank(message = "{ContainerManifestImportAllReqVO.podCode.notBlank}")
    @Length(max = 5, message = "{ContainerManifestImportAllReqVO.podCode.length}")
    private String podCode;

    @Schema(description = "装货港码头")
    @NotBlank(message = "{ContainerManifestImportAllReqVO.polTerminal.notBlank}")
    @Length(max = 50, message = "{ContainerManifestImportAllReqVO.polTerminal.length}")
    private String polTerminal;

    @Schema(description = "卸货港码头")
    @NotBlank(message = "{ContainerManifestImportAllReqVO.podTerminal.notBlank}")
    @Length(max = 50, message = "{ContainerManifestImportAllReqVO.podTerminal.length}")
    private String podTerminal;

    @Schema(description = "支线船名-运输工具英文名称")
    @NotBlank(message = "{ContainerManifestImportAllReqVO.vesselCode.notBlank}")
    @Length(max = 50, message = "{ContainerManifestImportAllReqVO.vesselCode.length}")
    private String vesselCode;

    @Schema(description = "支线航次")
    @NotBlank(message = "{ContainerManifestImportAllReqVO.voyage.notBlank}")
    @Length(max = 50, message = "{ContainerManifestImportAllReqVO.voyage.length}")
    private String voyage;

    @Schema(description = "承运人代码")
    @NotBlank(message = "{ContainerManifestImportAllReqVO.partnerCode.notBlank}")
    @Length(max = 50, message = "{ContainerManifestImportAllReqVO.partnerCode.length}")
    private String partnerCode;

    @Schema(description = "预计靠泊时间")
    @NotBlank(message = "{ContainerManifestImportAllReqVO.etb.notBlank}")
    @Length(max = 50, message = "{ContainerManifestImportAllReqVO.etb.length}")
    private String etb;

    @Schema(description = "预计离泊时间")
    @NotBlank(message = "{ContainerManifestImportAllReqVO.etu.notBlank}")
    @Length(max = 50, message = "{ContainerManifestImportAllReqVO.etu.length}")
    private String etu;

    @Schema(description = "实际靠泊时间")
    @NotBlank(message = "{ContainerManifestImportAllReqVO.atb.notBlank}")
    @Length(max = 50, message = "{ContainerManifestImportAllReqVO.atb.length}")
    private String atb;

    @Schema(description = "实际离泊时间")
    @NotBlank(message = "{ContainerManifestImportAllReqVO.atu.notBlank}")
    @Length(max = 50, message = "{ContainerManifestImportAllReqVO.atu.length}")
    private String atu;
}
